#ifndef THERMAL_RS_KEYWORDS_H
#define THERMAL_RS_KEYWORDS_H

#include BS_FORCE_PLUGIN_IMPORT ()
#include "keyword_info_base.h"
#include BS_STOP_PLUGIN_IMPORT ()

#include "thermal_data.h"

namespace blue_sky
{
	template <class strategy_t>
	class BS_API_PLUGIN thermal_keywords: public keyword_info_base<strategy_t>
	{
		typedef thermal_keywords<strategy_t>           this_t;
		typedef keyword_info_base<strategy_t>          base_t;
		typedef typename base_t::sp_objbase            sp_objbase;
		typedef typename strategy_t::index_t           index_t;
		typedef typename strategy_t::item_t            item_t;

		typedef keyword_params <strategy_t>            keyword_params_t;
		typedef typename base_t::keyword_handler       keyword_handler;

		typedef thermal_idata                          idata_t;
        typedef smart_ptr <idata_t, true>	           sp_idata_t;
        
        typedef FRead                                  reader_t;
        typedef smart_ptr <reader_t, true>	           sp_reader_t;


        //! blue-sky class declaration
        BLUE_SKY_TYPE_DECL(thermal_keywords);
        
        //! default destructor
        virtual ~thermal_keywords () {};

		//! register active and supported keywords
        void register_keywords (sp_objbase &km, std::string provider) const;
        
        //! activate supported keywords
        static void activate_keywords (sp_objbase &km);
        
		//! thermal handler
		static void THERMAL_handler(const std::string &keyword, keyword_params_t &params);

	};

}

#endif //THERMAL_RS_KEYWORDS_H